import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
// 注意：当vuex的数据存储好后，任务一个页面和js文件，都可以获取vuex中的值。

// vuex作用：兄弟组件通信 ，存数据
// vuex缺点：一刷新页面，数据会丢失，如果要解决，可以借助接口或者本地存储
// vuex功能拓展：将所有的接口数据，管理在vuex中，
export default new Vuex.Store({
  // 1. 存储数据
  state: {
    token: '',
    list: [],
  },
  // 2. 计算属性
  getters: {},
  // mutations和actions中所有的函数，都是在组件中调用
  // 3. 同步逻辑函数 （相当于组件内部的 methods）
  mutations: {
    // 第一个参数，就是仓库数据，第二个参数，就是你在组件调用这个函数的时候，传递的参数
    set_token(state, data) {
      // 把数据存储在了state中
      state.token = data
      console.log('vuex中接收到的参数:', data)
    },
    set_list(state, item) {
      state.list.push(item)
    },
  },
  // 4. 异步逻辑函数 （相当于组件内部的 异步的 methods ）
  actions: {},
  // 5. 模块（就是当vuex的代码过多的时候，拆分vuex）
  modules: {},
})
